Computer systems can represent the surface of three-dimensional models using a mesh of triangles. The quantity of triangles within the initial representation of these models makes it necessary to simplify the model through a mesh simplification process. The objective of the mesh simplification process is to produce an output mesh that includes a reduced number of triangles, while retaining the important characteristics of the input mesh. The mesh simplification process can involve vertex decimation, vertex clustering, and performing a series of edge collapse operations. In edge collapse operations, a computer system receives an edge as input and collapses the edge into a single vertex to remove triangles that are incident to the edge.